var fs = require('fs')
var lyPath = './data.json'

// 获取留言列表
exports.find = function(callback){
    fs.readFile(lyPath,'utf8',function(err,data){
        if(err){
            return callback(err)
        }
        callback(null,JSON.parse(data).comments)
    })
}

// 添加保存留言
exports.save = function(ly,callback){
    fs.readFile(lyPath,'utf8',function(err,data){
        if(err){
            return callback(err)
        }
        
        var liuyan = JSON.parse(data).comments
        var d = new Date()
        ly.datetime = d.toLocaleDateString()
        ly.id = liuyan[liuyan.length - 1].id + 1
        // 把用户传递的对象保存到数组中
        // liuyan.push(ly)
        liuyan.unshift(ly)

        // 把对象数据转换成字符串
        var filedata = JSON.stringify({
            comments:liuyan
        })

        // 把字符串保存到文件中
        fs.writeFile(lyPath,filedata,function(err){
            if(err){
                return callback(err)
            }
            callback(null)
        })

    })
}

// 删除留言
exports.deleteById = function(id,callback){
    fs.readFile(lyPath,'utf8',function(err,data){
        if(err){
            return callback(err)
        }
        var liuyan = JSON.parse(data).comments

        // findIndex 方法专门用来根据条件查找元素的下标
        var deleteId = liuyan.findIndex(function(item){
            return item.id === parseInt(id)
        })

        // 根据下标从数组中删除对应的学生对象
        liuyan.splice(deleteId,1)
        // 把对象数据转换成字符串
        var filedata = JSON.stringify({
            comments:liuyan
        })

        // 把字符串保存到文件中
        fs.writeFile(lyPath,filedata,function(err){
            if(err){
                return callback(err)
            }
            callback(null)
        })
    })
}